This invention relates to computer database searches. More precisely, this invention provides an improved interface for performing computer database searches and filtering search results.
In the typical database search, a user queries the database by selecting a set of criteria (a request) and submitting those criteria to a database engine. The criteria might be in the form of a range of allowable values for a given field, an upper limit, a lower limit, or an exact match. Multiple field criteria can be combined by the use of logical operators (e.g., NOT, AND, OR, GREATER_THAN). The criteria might also include comparisons between multiple fields (e.g., AGE&gt;=IQ). Once the criteria are submitted to the database engine, the database engine selects all the records in the database that meet all of the criteria selected by the user and returns those records to the user.
Many different methods have been utilized to facilitate the user's creation of database requests. One standard for specifying database search criteria to the database engine is Structured Query Language (SQL). SQL statements are strings of text and numbers which define the search request. If the end user requesting data from a database is proficient in SQL, the end user can specify the SQL statement directly. However, where the end user is not proficient in SQL programming, a user interface might be provided to allow the end user to intuitively select elements from the user interface, which are then converted into SQL statements for submission to an SQL-capable database engine. Many user interfaces which convert user input into SQL statements are known. In some interfaces, a user answers a series of questions, fills out an on-screen form or selects from a finite number of choices using a mouse or other pointing device.
Once such search request is submitted, the database engine returns the records meeting the criteria, if any, and the user interface displays the records or some indication of the records. Several methods have been used to display the data returned from the database query, such as tables, charts, graphs, and graphic images such as maps or tree structures. The term "maps" as used herein can be geographical maps or logical maps laying out data points in an N-dimensional coordinate system.
It is also known to allow for refinement of a database search after the results of an initial search have been obtained. A refinement search is often desired by users where the initial search produces too many or too few records. With a refinement search, users might edit the initial search request or add additional criteria to the initial search request. By doing so, users can find the proper quantity and quality of records they need.
An important factor in determining a proper search criteria is prior knowledge of the database and the distribution of the values in each field. For example, the user knows that the database contains only a listing of Democrats, a search for male Republicans over the age of fifty living in cities of at least one million people will turn up no records. The user might then waste time refining the search by first eliminating any limitation on the size of the city, then eliminating the age limitation, eventually to discover that there are no Republicans in the database. The opposite result, too many records, could occur if the user specified too general a set of search criteria. In that case, the user might also waste time iteratively narrowing the search with little effect. Often, the success of a database search is dependent upon luck.
Another shortcoming of most current search methodologies is that users do not gain any knowledge during the search process to help refine their search. In some systems, database records, especially geographical databases, present records to the user as a set of dots overlaid on a map. While such an interface might be useful for a few dots, it becomes impractical for use with a large number of dots.
With large numbers of dots, either the dots will be too small to be selected with a pointing device or, if large enough, the dots will obscure other dots. FIG. 1 illustrates the former problem; FIG. 2 illustrates the latter.
One way to avoid the selection problem is to allow the user to click the pointing device near the point of interest and treat the click as the selection of all points within a radius ("a radius search"). Of course, this has the disadvantage of selecting too many records, too few records or the wrong records.
Another way to avoid the selection problem is to have a user select on arbitrary boundaries such as state boundaries, and gets a text listing of all the locations in that state, and possibly a further graphical selection of a county or region. The state selection is shown in FIG. 3. The disadvantage of this approach is that the user, at most, knows only whether or not a state contains at least one dot.
In addition to geographical data and other data which can be plotted in a two-dimensional plane (or an N-dimensional coordinate system with N being an integer greater than zero), data in searchable hierarchical structures often need to be searched.
One way to present the data points in a hierarchical structure search is to present all the data points. However, with large numbers of data points, this is impractical.
For example, Microsoft Word.TM. word processing software provides a feature for searching for files among the hierarchical directory structure of a disk. The matching files are displayed in a directory tree structure showing each of the directors for the files along with their parent directories. While this is useful for a small number of files, the display for a large number of files would not fit on the screen and thus the user must scroll through the listing or manually "collapse" uninteresting directory structures to be able to see the directory structures of interest. This approach does not give the user a "big picture" view of file structures, unless the user knows what the big picture looks like and creates it for themselves.
Yet another shortcoming of prior art information displays appears when there are more items to be listed than can fit on a display. One solution is to list all the items on a scrollable list. The other is to group the items into categories and display categories first, allow the user to select one of the categories, then display the items matching the selected category. Neither of these approaches is entirely satisfactory, however. In the former case, too much data and not enough information is presented. In the latter case, depending on the categories, the display might be underused.
Therefore, what is needed is an improved search interface which presents the user with information and views of the overall data being searched, in order to allow for an informed search.